package com.zaimokuza.cn.service;

import com.zaimokuza.cn.entity.PageResult;
import com.zaimokuza.cn.entity.blog.Comment;

import java.util.ArrayList;

/**
 * @author zaimokuza
 */
public interface CommentService {

    /**
     * 添加评论
     *
     * @param comment 添加评论
     */
    void addComment(Comment comment);

    /**
     * 用户删除评论
     *
     * @param id     评论ID
     * @param userId 用户ID
     */
    void deleteCommentForUser(String id, String userId);

    /**
     * 删除评论
     *
     * @param id 评论ID
     */
    void deleteComment(String id);

    /**
     * 根据博客ID删除评论
     *
     * @param blogId 博客ID
     */
    void deleteCommentByBlog(String blogId);

    /**
     * 查询评论集合
     *
     * @param blogId 博客ID
     * @param userId 用户ID
     * @param time   评论时间
     * @return 评论集合
     */
    ArrayList<Comment> getCommentList(String blogId, String userId, String time);

    /**
     * 查询评论分页集合
     *
     * @param blogName 博客名称
     * @param userName 用户名称
     * @param content  评论内容
     * @param page     当前页
     * @param size     每页数量
     * @return 评论分页集合
     */
    PageResult<Comment> getCommentPage(String blogName, String userName, String content, Integer page, Integer size);

    /* 统计相关操作 */

    /**
     * 增加评论点赞数
     *
     * @param commentId 评论ID
     */
    void increaseCommentLikes(String commentId);

    /**
     * 减少评论点赞数
     *
     * @param commentId 评论ID
     */
    void reduceCommentLikes(String commentId);

}
